Indexing হল ডেটাবেসের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটা অনুসন্ধানের গতি বাড়ায়। ArangoDB-তে দুটি প্রাথমিক ধরনের ইনডেক্স ব্যবহৃত হয়: Primary Index এবং Secondary Index। এগুলো দ্রুত ডেটা রিট্রাইভাল এবং ডেটা অপ্টিমাইজেশনের জন্য অত্যন্ত কার্যকর।
Primary Index
Primary Index কী?
- প্রতিটি Collection-এ একটি Primary Index ডিফল্টভাবে থাকে।
- এটি প্রতিটি ডকুমেন্টের _key এবং _id ফিল্ডের উপর কাজ করে।
- Primary Index হল অনন্য, অর্থাৎ প্রতিটি ডকুমেন্টে একচেটিয়া (unique) চাবি থাকতে হবে।
Primary Index এর বৈশিষ্ট্য
- ডিফল্ট ইনডেক্স: এটি ArangoDB-তে স্বয়ংক্রিয়ভাবে তৈরি হয়।
- ফাস্ট রিট্রাইভাল: ডকুমেন্ট রিট্রাইভ করার জন্য দ্রুততম।
- ইউনিক (Unique): _key ফিল্ড অনন্য হওয়া বাধ্যতামূলক।
ব্যবহার ক্ষেত্র
- ডকুমেন্ট রিট্রাইভ করতে, যেখানে ডকুমেন্টের সুনির্দিষ্ট _key বা _id জানা থাকে।
উদাহরণ
AQL দিয়ে Primary Index ব্যবহার করে ডকুমেন্ট রিট্রাইভ করা:
FOR doc IN myCollection
FILTER doc._key == "12345"
RETURN doc
Secondary Index
Secondary Index কী?
- Secondary Index হল এমন একটি ইনডেক্স যা Primary Index ছাড়াও নির্দিষ্ট একটি বা একাধিক ফিল্ডের উপর তৈরি করা হয়।
- এটি ডেটা ফিল্টারিং এবং অনুসন্ধানের কার্যকারিতা বাড়ায়।
Secondary Index এর ধরন
- Persistent Index: নির্দিষ্ট ফিল্ডে দ্রুত অনুসন্ধানের জন্য।
- Fulltext Index: টেক্সট সার্চিংয়ের জন্য ব্যবহৃত হয়।
- Geo Index: ভৌগোলিক ডেটার জন্য।
- TTL (Time-to-Live) Index: ডেটার নির্ধারিত সময়ের পরে মেয়াদোত্তীর্ণ করার জন্য।
Secondary Index এর বৈশিষ্ট্য
- ইনডেক্স স্পেসিফিকেশন: Secondary Index নির্দিষ্ট ফিল্ডে ম্যানুয়ালি কনফিগার করতে হয়।
- ফিল্টারিং এবং ফাস্ট কোয়েরি: বড় ডেটাসেট থেকে নির্দিষ্ট ডেটা দ্রুত রিট্রাইভ করা যায়।
- মাল্টি-ফিল্ড সমর্থন: একাধিক ফিল্ডের উপর একত্রে Secondary Index তৈরি করা যায়।
ব্যবহার ক্ষেত্র
- টেক্সট সার্চ।
- নির্দিষ্ট মানের উপর ফিল্টারিং।
- ভৌগোলিক ডেটার উপর কাজ।
উদাহরণ
Persistent Index ব্যবহার করে Secondary Index তৈরি:
CREATE INDEX myPersistentIndex ON myCollection(name, age) TYPE persistent
Fulltext Index তৈরি:
CREATE INDEX myFulltextIndex ON myCollection(description) TYPE fulltext
Secondary Index ব্যবহার করে AQL কোয়েরি:
FOR doc IN myCollection
FILTER doc.name == "Alice" AND doc.age > 25
RETURN doc
Primary এবং Secondary Index এর তুলনা
| বৈশিষ্ট্য | Primary Index | Secondary Index |
|---|---|---|
| প্রতিটি Collection-এ | ডিফল্টভাবে উপস্থিত | ম্যানুয়ালি তৈরি করতে হয় |
| ফিল্ডের ধরন | _key এবং _id ফিল্ডে সীমাবদ্ধ | একাধিক ফিল্ডে প্রয়োগযোগ্য |
| ইউনিক মান | সবসময় ইউনিক | প্রয়োজনীয় নয় |
| ব্যবহার ক্ষেত্র | ডকুমেন্ট রিট্রাইভ | ফিল্টারিং এবং সার্চ অপারেশন |
| প্রসেসিং গতি | দ্রুততম (Direct Lookup) | নির্ভর করে ইনডেক্স এবং কোয়েরি-র উপর |
সারাংশ
ArangoDB-তে Primary Index এবং Secondary Index উভয়ই ডেটার কার্যকর অনুসন্ধানের জন্য ব্যবহৃত হয়। Primary Index ডকুমেন্ট রিট্রাইভালের জন্য প্রয়োজনীয়, যেখানে Secondary Index ডেটা ফিল্টারিং এবং জটিল অনুসন্ধানের গতি বাড়ায়। সঠিকভাবে ইনডেক্স তৈরি এবং ব্যবহার করলে ডেটাবেসের পারফরম্যান্স উল্লেখযোগ্যভাবে উন্নত হয়।
Read more